home *** CD-ROM | disk | FTP | other *** search
/ SGI Enlighten DSM 1.1 / SGI EnlightenDSM 1.1.iso / sco5x / common / bin / p_swap < prev    next >
Text File  |  1998-07-01  |  5KB  |  257 lines

  1. #!/bin/sh
  2. #
  3. # Copyright (c) 1990-1998 Enlighten Software Solutions, Inc.
  4. #            -- All Rights Reserved --
  5. #
  6.  
  7.  
  8. if test $# -lt 1
  9. then
  10.     echo "Usage: $0 architecture"
  11.     echo
  12.     echo "Where architecture is one of:"
  13.     echo "         AIX        DGUX"
  14.     echo "        HPUX        OSF1"
  15.     echo "         SCO         SGI"
  16.     echo "     SOLARIS        SUN4"
  17.     echo "      ULTRIX"
  18.     exit 1
  19. fi
  20.  
  21. echo "HOSTNAME         TOTAL    USED    FREE    CAP (%)"
  22.  
  23. case "$1" in
  24. AIX)
  25.     #
  26.     # IBM AIX
  27.     #
  28.     /usr/bin/hostname | /usr/bin/awk ' { printf ("%-14s ", $1); } '
  29.  
  30.     case `/usr/bin/uname -v` in
  31.         3)    pstat=/etc/pstat;;
  32.         4)    pstat=/usr/sbin/pstat;;
  33.         *)    pstat=pstat;;
  34.     esac
  35.     pagesize=`/usr/bin/pagesize`
  36.  
  37.     ($pstat -s; echo PAGESIZE $pagesize) | /usr/bin/tail +4 | /usr/bin/awk '
  38.         BEGIN {
  39.             used = 0;
  40.             free = 0;
  41.             pagesize = 1024;
  42.         }
  43.         {
  44.             if (NF == 2)
  45.             {
  46.                 if ($1 == "PAGESIZE")
  47.                     pagesize=$2;
  48.                 else
  49.                 {
  50.                     used += $1;
  51.                     free += $2;
  52.                 }
  53.             }
  54.         }
  55.         END {
  56.             used *= (pagesize / 1024);
  57.             free *= (pagesize / 1024);
  58.             printf ("%7d %7d %7d %7d\n", \
  59.                 free + used, used, free, (used * 100) / (free + used));
  60.         }'
  61.     ;;
  62.  
  63. SUN4)
  64.     #
  65.     # Solaris 1.x better know as Sun OS 4.1.x
  66.     #
  67.     /bin/hostname | /bin/awk ' { printf ("%-14s ", $1); } '
  68.  
  69.     /etc/pstat -s | /usr/ucb/head -1 | /bin/sed 's/k\>//g' | /bin/awk '
  70.         {
  71.             for (i = 1; i <= NF; i++)
  72.             {
  73.                 if ($i == "used,")
  74.                     used=$(i - 1)
  75.  
  76.                 if ($i == "available")
  77.                     free=$(i - 1)
  78.             }
  79.  
  80.             printf ("%7d %7d %7d %7d\n", \
  81.                 free + used, used, free, (used * 100) / (free + used));
  82.         }'
  83.     ;;
  84.  
  85.  
  86. SOLARIS)
  87.     #
  88.     # Solaris 2.x
  89.     #
  90.     /sbin/uname -n | /usr/bin/awk ' { printf ("%-14s ", $1); } '
  91.  
  92.     /usr/sbin/swap -l | /usr/bin/tail +2 | /usr/bin/awk '
  93.         BEGIN {
  94.             blocks = 0;
  95.             free   = 0;
  96.         }
  97.         {
  98.             blocks += $(NF - 1) / 2;
  99.             free   += $(NF - 0) / 2;
  100.         }
  101.         END {
  102.             if (blocks != 0)
  103.             {
  104.                 printf ("%7d %7d %7d %7d\n", \
  105.                     blocks, blocks - free, free, ((blocks - free) * 100) / blocks);
  106.             }
  107.         }'
  108.     ;;
  109.  
  110. SCO)
  111.     #
  112.     # SCO
  113.     #
  114.     /bin/uname -n | /usr/bin/awk ' { printf ("%-14s ", $1); } '
  115.  
  116.     /etc/swap -l | /bin/tail +2 | /usr/bin/awk '
  117.         BEGIN {
  118.             blocks = 0;
  119.             free   = 0;
  120.         }
  121.         {
  122.             blocks += $(NF - 1) / 2;
  123.             free   += $(NF - 0) / 2;
  124.         }
  125.         END {
  126.             printf ("%7d %7d %7d %7d\n", \
  127.                 blocks, blocks - free, free, ((blocks - free) * 100) / blocks);
  128.         }'
  129.     ;;
  130.  
  131. DGUX)
  132.     uname -n | awk ' { printf ("%-14s ", $1); } '
  133.  
  134.     freeswap=`/usr/bin/sar -r 1 1 | /usr/bin/tail -1 | \
  135.         /usr/bin/awk ' { print $3 } ' `
  136.  
  137.     blocks=`/usr/bin/admpdisk -o list -a | /usr/bin/fgrep swap | /usr/bin/awk '
  138.         BEGIN {
  139.             blocks = 0;
  140.         }
  141.         {
  142.             blocks += $(NF);
  143.         }
  144.         END {
  145.             printf ("%d\n", blocks);
  146.         }'`
  147.  
  148.     echo $freeswap $blocks | /usr/bin/awk '
  149.         BEGIN {
  150.             blocks = 0;
  151.             free   = 0;
  152.         }
  153.         {
  154.             free   += $1 / 2;
  155.             blocks += $2 / 2;
  156.         }
  157.         END {
  158.             printf ("%7d %7d %7d %7d\n", \
  159.                 blocks, blocks - free, free, ((blocks - free) * 100) / blocks);
  160.         }'
  161.     ;;
  162.  
  163. HPUX)
  164.     HPNAME="`uname -n`"
  165.     export HPNAME
  166.     /etc/swapinfo | /bin/tail +3 | /usr/bin/awk "
  167.     {
  168.         if (\$1 == \"dev\" || \$1 == \"fs\")
  169.         {
  170.             printf (\"%-14s %7d %7d %7d %8s\n\", \"$HPNAME\", \$2, \$3, \$4, \$5);
  171.         }
  172.     }" | sed -e s/%//
  173.     ;;
  174.  
  175. SGI)
  176.     uname -n | awk ' { printf ("%-14s ", $1); } '
  177.  
  178.     /sbin/swap -l | /usr/bin/tail +2 | /usr/bin/awk '
  179.         BEGIN {
  180.             blocks = 0;
  181.             free   = 0;
  182.             line   = 1;
  183.         }
  184.         {
  185.             if (line == 0)
  186.             {
  187.                 blocks += $(NF - 1) / 2;
  188.                 free   += $(NF - 2) / 2;
  189.                 line    = 1;
  190.             }
  191.             else
  192.                 line = 0;
  193.         }
  194.         END {
  195.             printf ("%7d %7d %7d %7d\n", \
  196.                 blocks, blocks - free, free, ((blocks - free) * 100) / blocks);
  197.         }'
  198.     ;;
  199.  
  200. OSF1)
  201.     #
  202.     # DEC OSF/1 (or Digital Unix)
  203.     #
  204.     /usr/bin/hostname | /usr/bin/awk ' { printf ("%-14s ", $1); } '
  205.  
  206.         pagesize=`/usr/bin/pagesize`
  207.         (swapon -s; echo PAGESIZE $pagesize) | awk 'BEGIN {
  208.                   flag = 0; total = 0; used = 0; pagesize = 8192 }
  209.              {
  210.                if ($1 == "PAGESIZE")
  211.                     {  pagesize = $2 }
  212.                if( $1 == "Total" && $2 == "swap" && $3 == "allocation:" )
  213.                     { flag = 1 }
  214.                if ( $1 == "Allocated" && flag == 1 && total == 0)
  215.                     { total = $3 }
  216.                if ( $1 == "In-use" && flag == 1 && used == 0 )
  217.                     { used = $3 }
  218.              }
  219.              END { 
  220.                     total *= (pagesize / 1024);
  221.                     used  *= (pagesize / 1024);
  222.                     free  = total - used;
  223.                     printf ("%7d %7d %7d %7d\n", \
  224.                              total, used, free, (used * 100) / total);
  225.              }'
  226.     ;;
  227.  
  228.  
  229. ULTRIX)
  230.     #
  231.     # Dec Ultrix
  232.     #
  233.     /bin/hostname | /bin/awk ' { printf ("%-14s ", $1); } '
  234.  
  235.     /etc/pstat -s | /bin/sed 's/k//g' | /bin/awk '
  236.         BEGIN {
  237.             used = 0;
  238.             free = 0;
  239.         }
  240.         {
  241.             for (i = 1; i <= NF; i++)
  242.             {
  243.                 if ($i == "used")
  244.                     used += $(i - 1)
  245.  
  246.                 if ($i == "free,")
  247.                     free += $(i - 1)
  248.             }
  249.         }
  250.         END {
  251.             printf ("%7d %7d %7d %7d\n", \
  252.                 free + used, used, free, (used * 100) / (free + used));
  253.         }'
  254.     ;;
  255.  
  256. esac
  257.